// 定义接口返回数据的类型
interface ApiResponse<T> {
  code: string;
  msg: string;
  data: T;
}

// 定义搜索接口的请求参数类型
interface SearchParams {
  keyword?: string;
  page?: number;
  pageSize?: number;
}

// 定义搜索结果的类型
interface SearchResult {
  id: string;
  title: string;
  cover: string;
  // ... 其他字段
}

/**
 * 搜索接口
 * @param params 搜索参数
 * @returns Promise<ApiResponse<SearchResult[]>>
 */
export async function search(params: SearchParams): Promise<ApiResponse<SearchResult[]>> {
  try {
    const response = await fetch('/api/search/search', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      },
      body: JSON.stringify(params),
    });

    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }

    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Search request failed:', error);
    throw error;
  }
}

// 使用示例：
// const result = await search({ keyword: '电影', page: 1, pageSize: 10 }); 